<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" href="../assets/images/logo.png">
    <title>Document</title>

    <!-- 引入css：elementUi、bootstrap、bootstrap-icons、normalize统一规范、index -->
    <link rel="stylesheet" href="../node_modules/element-ui/lib/theme-chalk/index.css">
    <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="../node_modules/bootstrap-icons/font/bootstrap-icons.min.css">
    <link rel="stylesheet" href="../assets/css/normalize.css">
    <link rel="stylesheet" href="../assets/css/detail.css">

    <!-- 引入JS：vue、elementUI、jQuery、bootstrap -->
    <script src="../node_modules/vue/dist/vue.min.js"></script>
    <script src="../node_modules/element-ui/lib/index.js"></script>
    <script src="../node_modules/jQuery/tmp/jquery.js"></script>
    <script src="../node_modules/bootstrap/dist/js/bootstrap.bundle.js"></script>
    <!-- 引入http-vue-loader：html页面中引入VUE组件需要的包 -->
    <!-- <script src="https://unpkg.com/http-vue-loader"></script> -->
    <script src="../node_modules/http-vue-loader/src/httpVueLoader.js"></script>
    <script src="../node_modules/axios/dist/axios.min.js"></script>
    <script src="../assets/js/common.js"></script>

</head>

<body>
<div id="app">
    <!-- 引入头部组件 -->
    <my-header></my-header>

    <section style="margin-top: 80px">
        <div class="container">
            <a href="#">
                <img :src="ArticleContent.articlePic" width="100%" alt=""/>
            </a>
        </div>
    </section>

    <section class="mt-3">
        <div class="container">
            <div class="card" style="background-color: white;">
                <div class="card-body">
                    <div class="text-center">
                        <h2 class="my-4">{{ ArticleContent.articleName }}</h2>
                        <p>
                            <i class="bi bi-folder2-open opacity-50"></i>
                            <span class="card-text articleMsg">{{ ArticleContent.articleTypeName }}</span>
                            <i class="bi bi-tags opacity-50 ms-2"></i>
                            <span class="card-text articleMsg">{{ ArticleContent.articleTag }}</span>
                            <i class="bi bi-alarm opacity-50  ms-2"></i>
                            <span class="card-text articleMsg">{{ ArticleContent.createTime }}</span>
                            <a href="#" class="card-link articleMsg ms-2">
                                <i class="bi bi-hand-thumbs-up-fill opacity-50"></i> {{ ArticleContent.articleStarNum }}
                            </a>
                            <i class="bi bi-book-half opacity-50 ms-2"></i>
                            <span class="card-text articleMsg">{{ ArticleContent.articleReadCount }}</span>
                        </p>
                        <hr class="my-4"/>
                        <p class="text-start" v-html="ArticleContent.articleContent">
                        </p>
                    </div>
                    <hr class="my-4"/>
                    <div>
                        <h3>相关文章</h3>
                        <ul class="list-group list-group-flush mb-3" v-for="a  in correlationArticles">
                            <li class="list-group-item" style="border: none;">&bull;
                                <a :href="`blog-detail.html?`+a.id" class="text-info article">{{a.articleName}}</a>
                            </li>
                        </ul>


                        <div style="background-color: #fafbfc;">
                            <div class="d-flex">
                                <img src="../assets/images/p28.jpg" alt="" width="40px" class="rounded-circle m-2"/>
                                <input class="form-control h-75 mt-3" v-model="commentText" placeholder="请输入评论..."/>
                            </div>
                            <button type="button" class="btn btn-primary" @click="addComment" style="width: 100px;margin-left: 55px;">发表评论</button>
                        </div>

                        <hr/>

                        <div>
                            <!--评论-->
                            <div v-for="c in comments">
                                <div class="delBtn" @click="delComment(c.id)">
                                    <i class="bi bi-trash3-fill"></i>
                                </div>
                                <div class="d-flex">
                                     <img src="../assets/images/p28.jpg" alt="" width="40px" class="rounded-circle m-2" />
                                    <div class="mt-1">
                                        <span class="text-dark fw-bolder h6">游客:
                                            <span> {{c.id}}</span>
                                        </span>
                                        <br />
                                        <span>{{c.createTime}}</span>
                                    </div>
                                </div>
                                <span style="margin-left: 55px;">{{c.content}}</span>
                                <hr class="my-2" />
                            </div>
                        </div>
                        <!-- my-3【上下外边距1rem】，ps-1【左内边距0.25rem】，pe-4【右内边距1.5rem】，
                          d-flex【开启弹性布局】，justify-content-between【主轴方向两端对齐】 -->
                        <div class="my-3 ps-1 pe-4 d-flex justify-content-between">
                            <p>转载声明：本博客由波波老师创作。可自由转载、引用，
                                但需署名作者且注明文章出处。如转载至微信公众号，请在文末添加作者微信二维码。
                            </p>
                            <img src="../assets/images/CSDN.png" alt="" width="150px" height="130px"/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
</div>

<script>
    new Vue({
        el:"#app",
        data() {
            return {
                //评论内容
                commentText:'',
                ArticleContent:'',
                //相关文章
                correlationArticles:[],
                //文章评论
                comments :[]
            }
        },
        methods:{
            // 获取文章内容
            getArticleContent(){
                //获取当前url地址
                let url = window.location.href;
                // 截取url地址
                let id = url.substring(url.lastIndexOf('?')+1);
                this.$http.get('/article/'+id).then(res=>{
                    this.ArticleContent = res.data.data;
                    // console.log(res.data.data)
                })
            },
            //获取相关文章
            getCorrelationArticles(){
                // 获取当前url地址
                let url = location.href;
                // 截取url地址
                let articleId = url.substring(url.indexOf("?") + 1);
                this.$http.get('/article/correlationArticles/ '+ articleId).then(res => {
                    this.correlationArticles= res.data;
                    console.log(res.data)
                })
            },
            createUuid() {
                var s = [];
                var hexDigits = "0123456789abcdefghi";
                for (var i = 0; i < 36; i++) {
                    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
                }
                s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
                s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
                s[8] = s[13] = s[18] = s[23] = "-";

                var uuid = s.join("");
                return uuid;
            },
            // 获取当前文章评论
            getComments(){
                // 获取当前url地址
                let url = location.href;
                // 截取url地址
                let articleId = url.substring(url.indexOf("?") + 1);
                this.$http.get("/comment/"+articleId).then(res => {
                    this.comments = res.data.data
                })
            },
            // 发表评论
            addComment(){
                let params = {
                    id:this.createUuid(),
                    articleId:this.ArticleContent.id,
                    nickname:'游客',
                    content:this.commentText
                }
                if (params.content==''|| params.content==null){
                    this.$message.error('评论内容不能为空')
                }else{
                    this.$http.put('/comment',params).then(res => {
                        if (res.data.message){
                            this.commentText = ''
                            this.getComments()
                        }
                    })
                }
            },
            //删除评论
            delComment(id){
                //确认对话框
                this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    this.$http.delete('/comment/'+id).then(res => {
                        if (res.data.message){
                            this.getComments()
                        }
                        if (res.data.message){
                            this.$message({
                                type: 'success',
                                message: '删除成功!'
                            })
                        }
                    })
                }).catch(() => {
                    this.$message({
                        type: 'warning',
                        message: '已取消删除'
                    })
                })
            }
        },
        mounted() {
            //获取当前文章评论
            this.getComments()
            this.getArticleContent();
            this.getCorrelationArticles();
        },
        components: {
            // 将组建加入组建库
            'my-header': httpVueLoader('./common/header.vue')
        }
    })
</script>

</body>

</html>